
package com.transaction.demo.message;

import javax.validation.Valid;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import com.transaction.demo.common.util.Result;
import com.transaction.demo.common.util.ResultPage;
import com.transaction.demo.trade.vo.req.TradePaymentRecordListReqVo;
import com.transaction.demo.trade.vo.req.TradePaymentRecordReqVo;
import com.transaction.demo.trade.vo.req.TradePaymentRecordUpdateReqVo;
import com.transaction.demo.trade.vo.resp.TradePaymentRecordRespVo;

/**
 * 描述：交易模块查询接口类
 * 作者：马庆智
 * 日期：2023/4/27 15:24
 */
@FeignClient(value = "demo-trade-provider", fallback = TradePaymentQueryServiceHystrix.class, path = "/trade/tradePaymentRecord")
public interface TradePaymentQueryService {

	/**
	 * 查询支付记录表
	 *
	 * @param record 请求参数
	 * @return TradePaymentRecordResp
	 * @author 马庆智
	 * @date: 2023/04/27 17:22:10
	 */
	@PostMapping("/queryTradePaymentRecord")
	TradePaymentRecordRespVo query(@RequestBody @Valid TradePaymentRecordReqVo record);

	/**
	 * 查询支付记录表列表
	 *
	 * @param record 请求参数
	 * @return TradePaymentRecordResp
	 * @author 马庆智
	 * @date: 2023/04/27 17:22:10
	 */
	@PostMapping("/queryTradePaymentRecordList")
	Result<ResultPage<TradePaymentRecordRespVo>> queryTradePaymentRecordList(
			@RequestBody @Valid TradePaymentRecordListReqVo record);

	/**
	 * 删除支付记录表
	 *
	 * @param ids 请求参数
	 * @return Result<Integer>
	 * @author 马庆智
	 * @date: 2023/04/27 17:22:10
	 */
	@PostMapping("/deleteTradePaymentRecord")
	Result<Integer> deleteTradePaymentRecord(String ids);

	/**
	 * 更新支付记录表
	 *
	 * @param record 请求参数
	 * @return Result<Integer>
	 * @author 马庆智
	 * @date: 2023/04/27 17:22:10
	 */
	@PostMapping("/updateTradePaymentRecord")
	Result<Integer> updateTradePaymentRecord(@RequestBody @Valid TradePaymentRecordUpdateReqVo record);

}
